home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / DDJMAG / DDJ9203.ZIP / OOPASM.ZIP / WINDOW.ASM < prev    next >
Assembly Source File  |  1990-04-03  |  3KB  |  135 lines

  1.     .MODEL    SMALL
  2.  
  3.     INCLUDE    equates.inc
  4.     INCLUDE    instance.inc
  5.     INCLUDE    messages.inc
  6.     INCLUDE    objects.inc
  7.  
  8. IF1
  9.     INCLUDE    macros.mac
  10.     INCLUDE    objects.mac
  11.     INCLUDE    video.mac
  12. ENDIF
  13.  
  14.     EXTRN    Self:WORD
  15.  
  16.     .CODE
  17.  
  18.     PUBLIC    winInstVars
  19. COMMENT    %
  20. ==============================================================================
  21. Gets the instance variables for Window objects.
  22.  
  23. =============================================================================%
  24. winInstVars    PROC    NEAR
  25.     getInst        ch,Row1,Self        ;Get upper row
  26.     getInst        cl,Col1            ;Get left column
  27.     getInst        dh,Row2            ;Get lower row
  28.     getInst        dl,Col2            ;Get right column
  29.     getInst        bl,Color        ;Get window color
  30.     ret
  31. winInstVars    ENDP
  32.  
  33.  
  34.  
  35. COMMENT    %
  36. ==============================================================================
  37. Clears a window.
  38.  
  39. =============================================================================%
  40. clrWindow    PROC    NEAR
  41.     call        winInstVars        ;Get window instance vars
  42.     clrWin        ch,cl,dh,dl,bl
  43.     ret
  44. clrWindow    ENDP
  45.  
  46.  
  47.  
  48. COMMENT    %
  49. ==============================================================================
  50. Clears a window skipping the border.
  51.  
  52. =============================================================================%
  53. clrWindow_    PROC    NEAR
  54.     call        winInstVars        ;Get window instance vars
  55.     inc        ch            ;Shrink window coords
  56.     inc        cl
  57.     dec        dh
  58.     dec        dl
  59.     clrWin        ch,cl,dh,dl,bl
  60.     ret
  61. clrWindow_    ENDP
  62.  
  63.  
  64.  
  65. COMMENT    %
  66. ==============================================================================
  67. Scrolls a window up.
  68.  
  69. Passed:    StackTop - Number of lines to scroll
  70.  
  71. =============================================================================%
  72. scrlWinUp    PROC    NEAR
  73.     getStackArgs    ax            ;Get #lines to scroll
  74.     call        winInstVars        ;Get window instance vars
  75.     inc        ch            ;Shrink window coords
  76.     inc        cl
  77.     dec        dh
  78.     dec        dl
  79.     scrlUp        ch,cl,dh,dl,bl,al
  80.     ret
  81. scrlWinUp    ENDP
  82.  
  83.  
  84.  
  85. COMMENT    %
  86. ==============================================================================
  87. Scrolls a window down.
  88.  
  89. Passed:    StackTop - Number of lines to scroll
  90.  
  91. =============================================================================%
  92. scrlWinDown    PROC    NEAR
  93.     getStackArgs    ax            ;Get #lines to scroll
  94.     call        winInstVars        ;Get window instance vars
  95.     inc        ch            ;Shrink window coords
  96.     inc        cl
  97.     dec        dh
  98.     dec        dl
  99.     scrlDn        ch,cl,dh,dl,bl,al
  100.     ret
  101. scrlWinDown    ENDP
  102.  
  103.  
  104.  
  105.     .DATA
  106.  
  107. defMsg    Window,\
  108.     Refresh,\
  109.     <clrWindow,,>
  110.  
  111. defMsg    Window,\
  112.     ScrollUp,\
  113.     <scrlWinUp,,>
  114.  
  115. defMsg    Window,\
  116.     ScrollDown,\
  117.     <scrlWinDown,,>
  118.  
  119. defMsg    Window,\
  120.     ScrollLeft,\
  121.     <clrWindow_,,>
  122.  
  123. defMsg    Window,\
  124.     ScrollRight,\
  125.     <clrWindow_,,>
  126.  
  127. defObj    Window,\
  128.     <>,\
  129.     <>,\
  130.     <Refresh,ScrollUp,ScrollDown,ScrollLeft,ScrollRight>
  131.  
  132.  
  133.  
  134.     END
  135.